package com.udg.goodmorning.tweet;


import android.content.Context;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Vibrator;
import android.view.View;

/**
 * 音を鳴らす
 * @author Ippei Shimobou
 *
 */
public class MorningCallPlayer extends View {
	private MediaPlayer player;
	private Context mContext;
	private Vibrator vibrator;
	private Uri alarm_uri;
	private static final long[] sVibratePattern = new long[] { 500, 500 };

	/**
	 * コンストラクタ
	 * @param context
	 * @param uri アラームUri
	 */
	public MorningCallPlayer(Context context, Uri uri) {
		super(context);
		mContext = context;
		player = null;
		alarm_uri = uri;
	}

	/**
	 * 鳴動。
	 */
	public void playCall() {
		try {

			// raw2file(this, R.raw.test_cbr, "test_cbr.mp3");

			if (alarm_uri != null) {
				/* Setting MPlayer */
				player = new MediaPlayer();
				player = MediaPlayer.create(mContext, alarm_uri); // TODO:ここで落ちる
				player.setLooping(true); // 繰り返しを行う。
				player.seekTo(0); // 最初から開始
				player.start();
			}

			// TODO: バイブレータの設定が反映されてない？常にバイブレートする？ by Shimobou
			/* Setting Vibrator */
			vibrator = (Vibrator) (mContext
					.getSystemService(Context.VIBRATOR_SERVICE));
			vibrator.vibrate(sVibratePattern, 0);

			/*
			 * //アラーム音量を取ってくるようにする。→できてない。今ミュージック音量取りに行ってる //
			 * player.setAudioStreamType(AudioManager.STREAM_ALARM); //
			 * if(Utility.DEBUG){ // player = MediaPlayer.create(mContext,
			 * R.raw.test_cbr); // }else{ // player =
			 * MediaPlayer.create(mContext, alarm_uri); // } //
			 * player.setOnCompletionListener(mContext); //
			 * player.setDataSource(R.raw.test_cbr.getFD()); //
			 * player.setLooping(true); //曲の頭から再生 // player.seekTo(0); //再生開始 //
			 * player.start();
			 */

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 鳴動停止。
	 */
	public void stopCall() {
		try {
			if (alarm_uri != null) {
				// 目覚まし停止
				player.stop();
				player.release();
				player = null;
			}
			vibrator.cancel();
		} catch (Exception e) {

		}
	}

	/**
	 * TODO:なんだこれ。
	 * @param arg0
	 */
	public void onCompletion(MediaPlayer arg0) {

	}

}
